package com.nefu.softlab.xjwc.mapper;

import com.nefu.softlab.xjwc.model.Project;
import com.nefu.softlab.xjwc.model.User;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @author : Ar1es
 * @date : 2020/1/12
 * @since : Java 8
 */
@Mapper
@Repository
public interface UserMapper {


    /**
     * shiro里查找用户是否存在
     *
     * @param phone
     * @return
     */
    User selectByPhone(String phone);

    /**
     * 添加用户
     *
     * @param user
     * @return
     */
    int insertUser(User user);

    /**
     * 查找用户号码是否重复
     *
     * @param phone
     * @return
     */
    @Select("select count(*) from user where phone = #{arg0}")
    int findByPhone(String phone);

    /**
     * 修改账号密码
     *
     * @param user
     * @return
     */
    int updateUserPassword(User user);

    /**
     * 修改用户信息
     *
     * @param user
     * @return
     */
    int updateUserInfo(User user);


    /**
     * 查询所有user用户
     *
     * @param user
     * @return
     */
    List<User> selectAllUser(User user);

    /**
     * 查看单一用户信息
     *
     * @param user
     * @return
     */
    List<User> selectUserInfo(User user);

    /**
     * 添加用户角色表
     * @param userId
     * @param roleId
     * @return
     */
    @Insert("INSERT INTO user_role(user_id, role_id) VALUES (#{userId},  #{roleId})")
    int insertUserRole(@Param("userId") String userId, @Param("roleId") Integer roleId);

    /**
     * 根据用户id删除用户
     * @param userId
     * @return
     */
    int deleteUserById(String userId);


    /**
     * 根据id查询单一用户
     * @param userId
     * @return
     */
    User selectUserInfoOne(String userId);
}
